In the field of software development, developers use an Integrated Development Environment (IDE), which is a collection of software programs including, but not limited to, a code editor, a code syntax checker, a code compiler, a runtime debugger, a program output console, a variables viewer, a memory viewer, a stack viewer, and a register viewer. The IDE provides a single integrated environment in which the software developer can write code, compile and build code for the target platform, run the code, and debug the code.
Some software developers work in software layers that deal with interface controller subsystems that adhere to certain communication protocols. Examples of such subsystems are storage, memory, human interface, multimedia, and networking software layers. When working in such software layers, the software developer is typically engaged in activities that involve debugging both functional and non-functional aspects of system behavior. Whether the developer needs to debug the interface controller behavior itself, how a program uses said interface controller, or how a program interacts with another entity connected to said interface controller, the developer can employ one or more protocol analysis tools to gain insight into how each of these entities interacts with each other.
Protocol analysis devices, such as protocol analyzers and protocol exercisers, are used to debug and test the functionality of various communication channels that allow components and sub-systems to exchange commands and data. Over the years, both the underlying PHY-layers and the protocols have evolved to maximize the performance of the hardware system, in throughput, power consumption, footprint and communication range. The use of protocol analysis devices, however, remained more or less the same—analyzing protocol information (e.g., digital data commands and data) transmitted between hardware interfaces, either using the protocol analysis device as a standalone device or as part of a more elaborate setup integrating several devices. For protocol analyzers which capture data being communicated along a communication channel, the “capture session” may be initiated by a user, by identifying an occurrence in the transmitted information (a “trigger event”) that triggers the device to start capture, or by external devices through pre-defined application programming interfaces (APIs). For protocol exercisers, which supply data to a device through a communication channel, the “exercising session” in these setups may be initiated by a user, by user-generated scripts, trigger events in the received information, or through pre-defined APIs.